The disclosures herein relate to a method and system for installing software on a computer.
In order to provide customers with a wide choice of computer configurations, some computer manufacturers offer to build computers on a xe2x80x9cbuild-to-orderxe2x80x9d (BTO) basis. That is to say, a customer can choose form a wide range of optional hardware and software that will be installed on a computer to be manufactured in a batch size of as little as one unit. Typically, a customer may order a BTO computer by making selections from a plurality of menus to specify hardware and software components such as basic system configuration, memory capacity, sound, video and interface cards, disc storage, operating system and application programs. In many cases, a BTO order will be placed by telephone or through a web site.
As will be understood, software must be installed on each computer in accordance with the specification selected by the customer. Such software includes not only the operating system and selected applications, it must also include drivers and other supporting software to operate the hardware that the customer selected. A BTO manufacturing system is likely, therefore, to give rise to an extremely large number of different potential software installations.
In a typical manufacturing installation, a computer""s hardware is assembled and the assembled computer is loaded into a burn rack. The burn rack then copies (xe2x80x9cburnsxe2x80x9d) the software required for the computer onto its hard drive (or other storage device). The total time taken to copy the software to the computer is referred to as the xe2x80x9cburn timexe2x80x9d. After the copying is complete, the computer may be subjected to a configuration and test procedure on the burn rack, possibly by means of executing software copied onto the hard drive during the burn.
Previously, many manufacturers have adopted a technique known as layering to copy the software ordered by the customer onto the computer""s hard drive. All of the software components (OS, drivers, applications, and so forth) are copied onto the drive in units suitable for distribution. When the customer first starts their machine, the various components are installed from the copied units such that they are configured for use. Typically, the first component to be installed is the OS, followed by the device drivers, followed by the applications. Thus, the system""s software is built up in much the same manner as in a manual installation.
Problems associated with a layered system are well-recognized. These are primarily due to the complexity of the procedure that must be carried out when the customer first tries to use their computer. This procedure is liable to failure (either as a result of inadvisable actions on the part of the customer or inherent problems) and the time taken for the procedure to complete is often perceived by the customer as being an inconvenience. For the manufacturer, each failure of a new computer typically results in intervention by customer support personnel and possible return of the computer, both of which represent an increase in the total cost associated with manufacturing the computer, together with a loss of customer satisfaction.
In order to address these difficulties, it is also known to install software on a computer by copying an image onto the hard drive. A first type of image, known as a static image, contains what is essentially a snapshot of the contents of a computer""s hard drive after all of the required software has been installed. The customer is therefore presented with a computer that is ready for use (perhaps after a small amount of configuration or manual input) without any major installation procedure or significant delay. It is also the case that the burn time for installation of a static image onto a new computer system occupies considerably less than the burn time of an equivalent system built up by layering.
As discussed above, the content of a computer""s hard drive is dependent to a great extent upon the hardware and software that is installed on the computer. Where computers are to be built on a BTO basis, a manufacturer would require an unfeasibly large number of different images to accommodate the full range of hardware and software options offered to a user. This problem is addressed by the provision of dynamic images. A dynamic image requires that a configuration procedure be carried out when the computer is first operated. Configuration may take place either under automatic control (for example, by means of a script file contained in the image) or manual control, to tailor the final configuration of the computer to the customer""s specific requirements and the installed hardware. It may contain several versions of some files, suitable for different hardware, operating system or application software configurations, thus increasing its size. Although it is more versatile than a static image, a dynamic image is more difficult for a manufacturer to produce, and its burn time is greater than the burn time of an equivalent static image.
Therefore, what is needed is a system and a method to enable computer systems to be produced on a BTO basis, while taking advantage of the improved reliability and convenience offered by an image-based installation, while optimizing the required burn time, and also to maximize the throughput of a computer manufacturing facility.
One embodiment, accordingly provides a method for installing software on a computer in a computer manufacturing facility including, assessing the frequency with which optional hardware and software is selected for installation on a computer; generating at least one static installation image for relatively more frequently selected optional hardware and software and generating at least one dynamic installation image for relatively less frequently selected optional hardware and software, and storing at least one image in a storage device of a computer.